package models

type HumaResponse[T any] struct {
	Body T
}

// HumaIgnoreSchema 忽略$schema
type HumaIgnoreSchema struct {
	// Schema string `json:"$schema,omitempty"`
}

type MessageResponse struct {
	HumaIgnoreSchema
	Code    int    `json:"code" default:"200"`
	Message string `json:"msg" default:"ok"`
}

type GenericData[T any] struct {
	MessageResponse
	Data T `json:"data"`
}

type GenericListData[T any] struct {
	MessageResponse
	Data struct {
		Total int `json:"total" minimum:"0" default:"0"`
		Items []T `json:"items"`
	} `json:"data"`
}
